-- 1.封装数据
-- 1.1 优惠券id
local voucherId = ARGV[1]
-- 1.2 用户id
local userId = ARGV[2]
local stockKey = 'seckill:stock:' .. voucherId
local orderKey = 'seckill:order:' .. voucherId

-- 检查库存是否充足
if tonumber(redis.call('get', stockKey )) <= 0 then
    return 1
end

-- 检查用户是否已下单
if (redis.call('sismember', orderKey, userId)) == 1 then
    return 2
end
-- 扣减库存
redis.call('incrby', stockKey,-1)
-- 添加订单set
redis.call('sadd',orderKey,userId)

-- 返回成功标识
return 0
